﻿        using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Linq;
        using System.Text;
        using System.Windows.Forms;
        using System.Data.SqlClient;
        using Rizmar.RizmarDataSet1TableAdapters;
        using System.Runtime.InteropServices;


namespace Rizmar
{
    public partial class LancamentoForm : Form
    {
        internal int n_titulos;
        internal Titulo[] titulos;
        Form parent;
        public LancamentoForm()
        {
            titulos = new Titulo[20];
            n_titulos = 0;
            InitializeComponent();
        }

        public LancamentoForm(Form form)
        {
            titulos = new Titulo[20];
            n_titulos = 0;
            if (form is MainForm)
              parent = (form as MainForm);
            InitializeComponent();
        }

        private void novoTitulo_Click(object sender, EventArgs e)
        {
            Titulo novo = new Titulo(this);

            novo.Location = (new System.Drawing.Point(0, titulos[n_titulos - 1].Location.Y + 117));

            panelPrincipal.Controls.Add(novo);
            titulos[n_titulos++] = novo;
        }

        private void excluirButton_Click(object sender, EventArgs e)
        {
            if (n_titulos > 1)
            {
                panelPrincipal.Controls.Remove(panelPrincipal.Controls[n_titulos - 1]);
                n_titulos--;
            }
        }

        private void buttonPesquisaCliente_Click(object sender, EventArgs e)
        {
            PesquisaClienteForm form = new PesquisaClienteForm(this);
            form.ShowDialog();
        }

        private void salvarButton_Click(object sender, EventArgs e)
        {
            RizmarDataSet1TableAdapters.TituloTableAdapter tta = new TituloTableAdapter();

            int inseriu;
            int cliente_id, sacado_id, dias, d = 0;
            float valor, desagio, liquido;
            bool tipo, tipo_serviço, status;
            DateTime data_base, vencimento;
            string codigo, banco;
            

            cliente_id = Convert.ToInt32(textBoxCódigo.Text);
            sacado_id = Convert.ToInt32(titulos[n_titulos - 1].codigoSacadoLabel.Text);
            codigo = titulos[n_titulos -1].getTextBoxCodigoText(); //titulos[n_titulos - 1].codigoTextBox.Text;
            valor = float.Parse(titulos[n_titulos - 1].valorTextBox.Text);
            tipo = titulos[n_titulos - 1].chequeRadioBox.Checked;
            banco = titulos[n_titulos - 1].getTextBoxBancoText(); //titulos[n_titulos - 1].bancoTextBox.Text;
            data_base = titulos[n_titulos - 1].getTextBoxDataBaseText(); //Convert.ToDateTime(titulos[n_titulos - 1].dataBaseDateTimePicker.Text);
            vencimento = titulos[n_titulos - 1].getTextBoxVencimentoText(); //Convert.ToDateTime(titulos[n_titulos - 1].vencimentoDateTimePicker.Text);
            dias = titulos[n_titulos - 1].getlabelCalculoDiasText(); //Convert.ToInt32(titulos[n_titulos - 1].calculoDiasLabel.Text);
            if (titulos[n_titulos - 1].dTextBox.Text != "") d = titulos[n_titulos - 1].getTextBoxDText(); //d = Convert.ToInt32(titulos[n_titulos - 1].dTextBox.Text);
            desagio = titulos[n_titulos - 1].getLabelDesagioText(); //float.Parse(titulos[n_titulos - 1].desagioTextBox.Text);
            liquido = titulos[n_titulos - 1].getLabelLiquidoText(); //float.Parse(titulos[n_titulos - 1].liquidoTextBox.Text);
            tipo_serviço = factoringRadioButton.Checked;
            status = true;

            inseriu = tta.Insert(cliente_id, sacado_id, codigo, valor, tipo, banco, data_base, vencimento, dias, d, desagio, liquido, tipo_serviço, status);

            if (inseriu > 0)
                foreach (Control c in titulos[n_titulos - 1].Controls)
                    c.Enabled = false;
            setDesagioTotalLabel();
            setLiquidoTotalLabel();
            setBrutoTotalLabel();
        }

        private void LancamentoForm_Load(object sender, EventArgs e)
        {
            Titulo novo = new Titulo(this);

            /*Configuração de alguns atributos do novo título*/
            novo.Location = (new System.Drawing.Point(0, 0));


            /*Adiciona novo título ao vetor de títulos*/
            titulos[n_titulos++] = novo;

            /*Adiciona novo título ao painel principal*/
            panelPrincipal.Controls.Add(novo);
        }

        public bool getfactoringRadioButton() 
        {
        return factoringRadioButton.Checked;
        }

        public int getTextBoxCódigoText()
        {
            return Convert.ToInt32(textBoxCódigo.Text);
        }

        public void setDesagioTotalLabel()
        {
            float somaDesagio = 0;
            for (int i = 0; i < n_titulos; i++) {
                somaDesagio += titulos[i].getLabelDesagioText();
            }
            desagioTotalLabel.Text = Convert.ToString(somaDesagio);      
        }

        public void setLiquidoTotalLabel()
        {
            float somaDesagio = 0;
            for (int i = 0; i < n_titulos; i++)
            {
                somaDesagio += titulos[i].getLabelLiquidoText();
            }
            liquidoTotallabel.Text = Convert.ToString(somaDesagio);
        }
        public void setBrutoTotalLabel()
        {
            float somaDesagio = 0;
            for (int i = 0; i < n_titulos; i++)
            {
                somaDesagio += titulos[i].getTextBoxValorText();
            }
            brutoTotalLabel.Text = Convert.ToString(somaDesagio);
        }

        private void sairButton_Click(object sender, EventArgs e)
        {
            this.Close();
        }


    }
}
        
        
